-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Add a test for CUDA library build rules #40605
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@makortel this almost works - it needs only a fix in the build command. |
|
@smuzaffar at least locally, this fails to link because scram does not pass <use name="HeterogeneousCore/CUDATestDeviceLib"/>The resulting command is >> Building binary testCudaDeviceAddition
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02768/el8_amd64_gcc11/external/gcc/11.2.1-f9b9dfdd886f71cd63f5538223d8f161/bin/c++ -O2 -pthread -pipe -Werror=main -Werror=pointer-arith -Werror=overlength-strings -Wno-vla -Werror=overflow -std=c++1z -ftree-vectorize -Werror=array-bounds -Werror=format-contains-nul -Werror=type-limits -fvisibility-inlines-hidden -fno-math-errno --param vect-max-version-for-alias-checks=50 -Xassembler --compress-debug-sections -msse3 -felide-constructors -fmessage-length=0 -Wall -Wno-non-template-friend -Wno-long-long -Wreturn-type -Wextra -Wpessimizing-move -Wclass-memaccess -Wno-cast-function-type -Wno-unused-but-set-parameter -Wno-ignored-qualifiers -Wno-deprecated-copy -Wno-unused-parameter -Wunused -Wparentheses -Wno-deprecated -Werror=return-type -Werror=missing-braces -Werror=unused-value -Werror=unused-label -Werror=address -Werror=format -Werror=sign-compare -Werror=write-strings -Werror=delete-non-virtual-dtor -Werror=strict-aliasing -Werror=narrowing -Werror=unused-but-set-variable -Werror=reorder -Werror=unused-variable -Werror=conversion-null -Werror=return-local-addr -Wnon-virtual-dtor -Werror=switch -fdiagnostics-show-option -Wno-unused-local-typedefs -Wno-attributes -Wno-psabi -DUSE_CMS_DEPRECATED -DBOOST_DISABLE_ASSERTS -fPIC tmp/el8_amd64_gcc11/src/HeterogeneousCore/CUDATestDeviceLib/test/testCudaDeviceAddition/testDeviceAddition.cu.o tmp/el8_amd64_gcc11/src/HeterogeneousCore/CUDATestDeviceLib/test/testCudaDeviceAddition/testCudaDeviceAddition_cudadlink.o -Wl,-E -Wl,--hash-style=gnu -L/data/user/fwyzard/CMSSW_13_0_X_2023-01-21-1100/biglib/el8_amd64_gcc11 -L/data/user/fwyzard/CMSSW_13_0_X_2023-01-21-1100/lib/el8_amd64_gcc11 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc11/cms/cmssw-patch/CMSSW_13_0_X_2023-01-21-1100/biglib/el8_amd64_gcc11 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc11/cms/cmssw-patch/CMSSW_13_0_X_2023-01-21-1100/lib/el8_amd64_gcc11 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc11/cms/cmssw-patch/CMSSW_13_0_X_2023-01-21-1100/external/el8_amd64_gcc11/lib -L/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02768/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_X_2023-01-19-2300/lib/el8_amd64_gcc11 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02768/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_X_2023-01-19-2300/biglib/el8_amd64_gcc11 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02768/el8_amd64_gcc11/external/cuda/11.5.2-66a9473808e7d5863d5bbec0824e2c4a/lib64/stubs -lcudart -lcudadevrt -lnvToolsExt -lcuda -o tmp/el8_amd64_gcc11/src/HeterogeneousCore/CUDATestDeviceLib/test/testCudaDeviceAddition/testCudaDeviceAdditionand it fails with If I add by by hand $ ./tmp/el8_amd64_gcc11/src/HeterogeneousCore/CUDATestDeviceLib/test/testCudaDeviceAddition/testCudaDeviceAddition
===============================================================================
All tests passed (2097152 assertions in 1 test case) |
|
please test |
|
-code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-40605/33862
Code check has found code style and quality issues which could be resolved by applying following patch(s)
|
|
@fwyzard , cms-sw/cmsdist#8264 should fix this issue. Problem was that there was a restrictions that only packages with at least one |
|
Understood... thanks! |
43491cb to
ba444f4
Compare
|
please test with cms-sw/cmsdist#8264 |
|
-code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-40605/33864
Code check has found code style and quality issues which could be resolved by applying following patch(s)
|
ba444f4 to
e30732b
Compare
|
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-40605/33979
|
|
+heterogeneous |
|
This pull request is fully signed and it will be integrated in one of the next master IBs after it passes the integration tests. This pull request will now be reviewed by the release team before it's merged. @perrotta, @dpiparo, @rappoccio (and backports should be raised in the release meeting by the corresponding L2) |
|
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-8dc05e/30294/summary.html Comparison SummarySummary:
GPU Comparison SummarySummary:
|
|
+1
|
PR description:
This PR adds new packages to test the implementation and usage of CUDA libraries for device code in CMSSW plugins and executables.
The package
HeterogeneousTest/CUDADeviceimplements a library that defines and exports CUDA device-only functions, and a plugin and test that use them.The package
HeterogeneousTest/CUDAKernelimplements a library that imports device functions fromHeterogeneousTest/CUDADeviceto define and export CUDA kernels, and a plugin and test that use them.The package
HeterogeneousTest/CUDAWrapperimplements a library that imports kernels fromHeterogeneousTest/CUDAKernelto define and export host-only wrappers around them, usable by non-CUDA libraries, plugins and applications, and implements a plugin and test that use them.The package
HeterogeneousTest/CUDAOpaqueimplements a library that use the wrappers fromHeterogeneousTest/CUDAKernelto define and export host-only functions around the whole CUDA section, usable by libraries, plugins and applications that are not CUDA-aware, and implements a plugin and test that use them.PR validation:
The new unit tests compile and pass.